const Express = require('express');
const path = require('path');
const bodyParser = require('body-parser'); // 解析 resquest 的 body 的模块

// express 建立服务端 sesion 的模块
const session = require('express-session');
const FileStore = require('session-file-store')();


const app = Express();

app.set('views',path.join(__dirname,'views')); // 设置模板路径
app.set('view engine','ejs'); // 设置模板使用的引擎为 ejs ，需要使用npm 安装

// 启用 body-parser 中间件,用来解析使用 post 发送的 MEMI 中的 body
app.use(bodyParser.urlencoded({extend:false}));
app.use(bodyParser.json())

// 
app.use(session({
    name:'skey',
    secret:'yongqi1314',
    store:new FileStore(),
    saveUninitialized:false,
    resave:false,
    cookie:{
        maxAge:1000*1000
    }
    
}))


// 响应 get 方法
app.get('/',(req,res) => {

    // 获取 session ，判断用户是否登陆
    var session = req.session;
    var loginUser = session.loginUser;
    var isLoginUser = !!loginUser;
    if(isLoginUser) {

    }else {
        
    }
    



    res.render('index',{
        title:'首页，咏琪跳高破纪录~',
        isLogined:false
    }); // 查找模板,并使用后面的数据渲染模板
})

app.get('/login',(req,res) =>{
    // 清楚 cookie
    req.session.destroy((err) => {

        res.clearCookie('skey');
        res.redirect('/'); // 跳转页面到 '/'
    })
})


// 响应 post 方法
app.post('/login',(req,res) => {
    
    const {name,password} = req.body;
    if(name == '刘钰' && password == '123456') {
        // 在客户端设置了 session
        req.session.regenerate(function(err) {
            if(err) {
                return res.json({
                    code:2,
                    msg:'登陆失败'
                })
            }
            req.session.loginUser = name;
            res.json({
                code:0,
                msg:'登陆成功'
            })
        })
        
    }else {
        res.json({
            code:1,
            msg:'密码错误'
        })
    }

    
})



app.listen(1314,() => {

    console.log('服务启动起来了');
});